---
title: OBRetentionService overview
summary: Which service the OBRetentionService proxy calls, who consumes it, and what it is used for.
status: draft
owner: ProcessOB3PRetention team
last_reviewed: 2026-10-06
---

# OBRetentionService overview

`OBRetentionService` is the generated WCF proxy that lets the `ProcessOB3PRetention` console application invoke the `ThirdPartyArchivalService`†. The application collects claim numbers that are due for third-party retention and delivers them to OnBase through the contract operation `ArchiveDocument`; applying third-party retention is the application's own classification of the batch, not an effect confirmed on the OnBase side*.

## Purpose

- Deliver batches of claim numbers to the `ThirdPartyArchivalService`† through the `ArchiveDocument` operation so that OnBase can act on them. The repository's exact effect inside OnBase is inferred from the request shape*.

## Business context

The application delegates the OnBase side of third-party retention to the consumed service. Each call carries a placeholder text document and the claim numbers of one batch as standalone keywords. What the remote service does with the request is not visible in this repository.

| Attribute | Value |
| --- | --- |
| Business capability | Third-party retention archival in OnBase, triggered per batch of claim numbers* |
| Owning team of the called service | Not determined from source** |
| Criticality to the consumer | Not determined from source** |
| Fallback when unavailable | None. The exception propagates and the run terminates at the first failing batch. See [Consumption](consumption.md#resilience) |

## Consumers

| Consumer | Call site | Operations used | Notes |
| --- | --- | --- | --- |
| `OnBaseService.ProcessRetention`, invoked from `ThirdPartyRetentionProcessor.Execute` | `ProcessOB3PRetention/Services/OnBaseService.cs:40` | [`ArchiveDocument`](reference.md#archivedocument) | Called once per batch, sequentially. The caller is `ProcessOB3PRetention/ThirdPartyRetentionProcessor.cs:52` |

## Capability summary

| Capability | Operations | Description |
| --- | --- | --- |
| Archive a document keyed by claim numbers | [`ArchiveDocument`](reference.md#archivedocument) | Sends one `OBDocumentArchiveArchiveDocument` message and receives a `long` result that the caller logs |

A generated proxy exposes everything the WSDL declares whether or not this repository calls it. Here the WSDL declares exactly one operation and the repository calls it, so no declared operation is unused. The full declared surface is on [Contract](contract.md) and the reconciliation is on [Operation map](operation-map.md).

## Generation provenance

| Aspect | Finding |
| --- | --- |
| Generated by | `svcutil` (Visual Studio WCF Service Reference), recorded in `Reference.svcmap` |
| Generated from | `ProcessOB3PRetention/Connected Services/OBRetentionService/EISClientWithConfig.wsdl` |
| Discovery document | None. The reference was generated from a single-WSDL metadata source recorded in `Reference.svcmap` |
| Generated namespace | `ProcessOB3PRetention.OBRetentionService` |
| Namespace matches the consuming project | Yes |
| Regeneration risk | Refreshing the reference may re-insert a second binding and endpoint named `BasicHttpBinding_HylandOutBoundContract1` into `ProcessOB3PRetention/App.config`, because the stored generation snapshots use that suffixed name*. See [Tech debt](tech-debt.md) |

## Non-documented artifacts

- The generated file `ProcessOB3PRetention/Connected Services/OBRetentionService/Reference.cs` and the svcutil snapshots are tool output and are cited only as evidence of the mechanism. This document set describes the contract from the WSDL and the usage from the call sites.

## Related documentation
- [Client index](index.md)
- [Architecture](architecture.md)
- [Contract](contract.md)
- [Operation map](operation-map.md)
- [Client reference](reference.md)
- [Consumption](consumption.md)
- [Dependencies](dependencies.md)
- [Business rules](business-rules.md)
- [Tech debt](tech-debt.md)

> **Note:** Statements marked with `†` are derived from dependency library
> documentation via the Legends CLI. Statements marked with `*` were inferred
> from code structure or contextual evidence. Statements marked with `**` could
> not be confirmed; treat as unknown until verified.

## Sources
- ProcessOB3PRetention/Connected Services/OBRetentionService/EISClientWithConfig.wsdl
- ProcessOB3PRetention/Connected Services/OBRetentionService/Reference.svcmap
- ProcessOB3PRetention/Connected Services/OBRetentionService/configuration91.svcinfo
- ProcessOB3PRetention/Services/OnBaseService.cs
- ProcessOB3PRetention/ThirdPartyRetentionProcessor.cs
- ProcessOB3PRetention/App.config
